//package com.qhgrain.app.service;
//
//import java.io.IOException;
//import java.util.Arrays;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
//import org.apache.commons.lang.StringUtils;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.stereotype.Service;
//
//import com.alibaba.fastjson.JSONArray;
//import com.alibaba.fastjson.JSONObject;
//import com.paas.base.modules.utils.lang.StringUtil;
//import com.paas.base.modules.utils.page.PageBean;
//import com.qhgrain.app.constant.UrlEnum;
//import com.qhgrain.app.util.PropertiesUtil;
//import com.qhgrain.app.vo.AppGroupVo;
//import com.qhgrain.gway.util.HttpUtil;
///**
// * 应用群组
// *@description:
// *@company:怡和祥云
// *@version:1.0.0
// *@author weijianfei
// *@date: 2016年4月12日 下午1:46:07
// */
//@Service
//public class AppGroupService {
//
//	private static Logger LOG = LoggerFactory.getLogger(AppGroupService.class);
//	
//	private final static String BASE_URL = PropertiesUtil.getProperties(UrlEnum.APP_GROUP)+"/appgroup/1.0.0/appgroup";
//
//	/**
//	 * 根据条件进行分页查询
//	 * @param name
//	 * @param pageNo
//	 * @param pageSize
//	 * @return
//	 * @throws Exception
//	 */
//	public PageBean<AppGroupVo> queryPage(String name,int pageNo,int pageSize) throws Exception {
//		try {
//			Map<String,Object> map = new HashMap<String,Object>();
//			if(StringUtil.isNotBlank(name)){
//				map.put("name", name);
//			}
//			map.put("pageNo", pageNo);
//			map.put("pageSize", pageSize);
//			
//			String vo = HttpUtil.postFormParams(BASE_URL, "/query", map);
//			JSONObject voJson = JSONObject.parseObject(vo);
//			if("1".equals(voJson.getString("state"))){
//				JSONObject data = voJson.getJSONObject("data");
//				PageBean<AppGroupVo> page = new PageBean<AppGroupVo>(pageNo,pageSize);
//				page.setData(JSONArray.parseArray(data.getString("list"), AppGroupVo.class));
//				page.setTotalCount(data.getIntValue("totalCount"));
//				
//				return page;
//			}else{
//				LOG.error("应用群组分页查询，api失败..."+vo);
//				throw new RuntimeException("应用群组分页查询，api失败..."+vo);
//			}
//		} catch (Exception e) {
//			throw e;
//		}
//		
//		
//	}
//	/**
//	 * 根据条件进行应用群组查询
//	 * @param name 为空，则返回全部
//	 * @return
//	 * @throws Exception
//	 */
//	public List<AppGroupVo> queryList(String name) throws Exception{
//		try {
//			Map<String,Object> map = new HashMap<String,Object>();
//			if(StringUtil.isNotBlank(name)){
//				map.put("name", name);
//			}
//			
//			String vo = HttpUtil.postFormParams(BASE_URL, "/query", map);
//			JSONObject voJson = JSONObject.parseObject(vo);
//			if("1".equals(voJson.getString("state"))){
//				return JSONArray.parseArray(voJson.getString("data"), AppGroupVo.class);
//			}else{
//				LOG.error("应用群组查询，api失败..."+vo);
//				throw new RuntimeException("应用群组查询，api失败..."+vo);
//			}
//		} catch (Exception e) {
//			throw e;
//		}
//		
//	}
//	
//	/**
//	 * 根据用户id获取对应的应用群组
//	 * @param userId
//	 * @param appGroupName
//	 * @return
//	 */
//	public List<AppGroupVo> queryByUserId(String userId,String appGroupName)throws Exception{
//		try {
//			Map<String,Object> map = new HashMap<String,Object>();
//			map.put("userId", userId);
//			if(StringUtil.isNotBlank(appGroupName)){
//				map.put("name", appGroupName);
//			}
//			
//			String vo = HttpUtil.postFormParams(BASE_URL, "/query", map);
//			JSONObject voJson = JSONObject.parseObject(vo);
//			if("1".equals(voJson.getString("state"))){
//				return JSONArray.parseArray(voJson.getString("data"), AppGroupVo.class);
//			}else{
//				LOG.error("应用群组查询，api失败..."+vo);
//				throw new RuntimeException("应用群组查询，api失败..."+vo);
//			}
//		} catch (Exception e) {
//			throw e;
//		}
//	}
//	/**
//	 * 根据用户id获取对应的应用群组,分页查询
//	 * @param userId
//	 * @param appGroupName
//	 * @return
//	 */
//	public PageBean<AppGroupVo> queryByUserIdForPage(String userId,String appGroupName,int pageNo,int pageSize)throws Exception{
//		try {
//			Map<String,Object> map = new HashMap<String,Object>();
//			map.put("userId", userId);
//			if(StringUtil.isNotBlank(appGroupName)){
//				map.put("name", appGroupName);
//			}
//			map.put("pageNo", pageNo);
//			map.put("pageSize", pageSize);
//			
//			String vo = HttpUtil.postFormParams(BASE_URL, "/query", map);
//			JSONObject voJson = JSONObject.parseObject(vo);
//			if("1".equals(voJson.getString("state"))){
//				JSONObject data = voJson.getJSONObject("data");
//				PageBean<AppGroupVo> page = new PageBean<AppGroupVo>(pageNo,pageSize);
//				page.setData(JSONArray.parseArray(data.getString("list"), AppGroupVo.class));
//				page.setTotalCount(data.getIntValue("totalCount"));
//				
//				return page;
//			}else{
//				LOG.error("应用群组分页查询，api失败..."+vo);
//				throw new RuntimeException("应用群组分页查询，api失败..."+vo);
//			}
//		} catch (Exception e) {
//			throw e;
//		}
//	}
//	/**
//	 * 新增
//	 * @param name
//	 * @param description
//	 * @param appIds
//	 * @return
//	 * @throws Exception
//	 */
//	public boolean add(String name,String description,List<String> appIds)throws Exception{
//		Map<String,Object> map = new HashMap<String,Object>();
//		map.put("name", name);
//		if(StringUtil.isNotBlank(description)){
//			map.put("description", description);
//		}
//		
//		if(appIds != null && appIds.size()>0){
//			map.put("addAppIds"	, StringUtils.join(appIds,","));
//		}
//		String vo = HttpUtil.postFormParams(BASE_URL, "/add", map);
//		JSONObject voJson = JSONObject.parseObject(vo);
//		if("1".equals(voJson.getString("state"))){
//			return true;
//		}else{
//			LOG.error("api新增应用群组失败..."+vo);
//			return false;
//		}
//	}
//	
//	public AppGroupVo find(String id){
//		String vo;
//		try {
//			vo = HttpUtil.get(BASE_URL+"/get/"+id, new HashMap<String,String>());
//			JSONObject voJson = JSONObject.parseObject(vo);
//			if("1".equals(voJson.getString("state"))){
//				return JSONObject.parseObject(voJson.getString("data"), AppGroupVo.class);
//			}else{
//				LOG.error("根据id获取应用群，api出错..."+vo);
//				throw new RuntimeException("根据id获取应用群，api出错..."+vo);
//			}
//		} catch (IOException e) {
//			throw new RuntimeException("根据id获取应用群，出错...",e);
//		}
//		
//	}
//	/**
//	 * 修改
//	 * @param id
//	 * @param name
//	 * @param description
//	 * @param appIds
//	 * @param isDeleteAllAppIds 群组-应用的关联更新前，是否要先全部删除旧的，true要先删除
//	 * @return
//	 * @throws IOException 
//	 */
//	public boolean update(String id,String name,String description,List<String> appIds,boolean isDeleteAllAppIds) throws IOException{
//		Map<String,Object> map = new HashMap<String,Object>();
//		map.put("id", id);
//		map.put("name", name);
//		if(StringUtil.isNotBlank(description)){
//			map.put("description", description);
//		}
//		if(appIds != null && appIds.size()>0){
//			map.put("appIds"	, StringUtils.join(appIds,","));
//		}
//		if(isDeleteAllAppIds){
//			map.put("isDeleteAllAppId", "1");
//		}
//		String vo = HttpUtil.postFormParams(BASE_URL, "/update", map);
//		JSONObject voJson = JSONObject.parseObject(vo);
//		if("1".equals(voJson.getString("state"))){
//			return true;
//		}else{
//			LOG.error("api修改应用群组失败..."+vo);
//			return false;
//		}
//	}
//	
//	public boolean delete(List<String> ids)throws Exception{
//		try {
//			Map<String,Object> paramMap = new HashMap<String,Object>();
//			paramMap.put("ids", StringUtils.join(ids,","));
//			String vo = HttpUtil.postFormParams(BASE_URL, "/delete", paramMap);
//			JSONObject voJson = JSONObject.parseObject(vo);
//			if("1".equals(voJson.getString("state"))){
//				return true;
//			}else{
//				LOG.error("应用群组删除，api失败..."+vo);
//				return false;
//			}
//		} catch (Exception e) {
//			LOG.error("删除应用，系统出错....id="+Arrays.deepToString(ids.toArray()),e);
//			throw e;
//		}
//	}
//}
